/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pedidos.Pedido.DAO;

import Pedidos.Pedido.BEAN.Coordenada;
import Pedidos.Pedido.BEAN.Paquete;
import Pedidos.Pedido.BEAN.PedidoBEAN;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import sape.Conexion;

/**
 *
 * @author Diego
 */

public class PedidoDAO {

 
 public PedidoDAO(){
   
 }

 
 private static Object inicializarDB(){
     return null;
 }
 
public static String agregarPedido(PedidoBEAN producto){
        Conexion db=new Conexion();
        db.estableceConexion();
        try {
            
            Statement s=db.conexion.createStatement();
            String strSelectIdPos="";
            String strInsertPed="";
            String strSelectIdPed="";
            String strInsertProdxPed="";
            Coordenada Pos=producto.getLugar();
            int posX=Pos.getX();
            int posY=Pos.getY();
            //Primero query para sacar IdPosicion utilizando X e Y
            strSelectIdPos="SELECT posIdPosicionMapa FROM posicion WHERE posCoordenadaX="+posX+" and posCoordenadaY="+posY;
            s.execute(strSelectIdPos);
            ResultSet rs = s.getResultSet();
            rs.next();
            int IdPosicion=rs.getInt(1);//Obengo Id a setear en Pedido
            int IdPedido;
           
            strInsertPed="INSERT INTO \"public\".pedido (pedIdUsuario,pedIdDestino,pedFechaCreacion,pedTiempoRetrasoTotal,pedTIempoRealTotal,pedTiempoEstimadoTotal,pedEstadoPedido) ";
            strInsertPed+="VALUES ("+producto.getId_usuario()+","+IdPosicion+",'20/12/1990',0,0,0,'En Proceso')";
            strSelectIdPed="SELECT currval('pedido_pedIdPedido_seq')";
            s.execute(strInsertPed);
            s.execute(strSelectIdPed);
            rs = s.getResultSet();
            rs.next();
            IdPedido=rs.getInt(1);
            
            ArrayList<Paquete> lista=producto.getLista_productos();
            for (Paquete prod : lista) {
                int idProd=prod.getId_producto();
                int cantProd=prod.getCantidad();
                for (int i = 0; i < cantProd; i++) {
                    strInsertProdxPed="INSERT INTO \"public\".productosxpedido (pxpIdProducto,pxpIdPedido,pxpestado) ";
                    strInsertProdxPed+="VALUES ("+idProd+","+IdPedido+",'En Proceso')";
                    s.execute(strInsertProdxPed);
                }
            }
        }catch (SQLException e){
            e.getMessage();
            db.cierraConexion();
            return "SQLERROR";
        }
    db.cierraConexion();
    return "OK";
}

public static ArrayList<PedidoBEAN> getListaPedidos(){    
 return null;
 }
//OTROS Metodos DAO
}
